Proximity aware voice agent

ABSTRACT

A personal assistant device configured to control companion devices may include a memory configured to maintain a companion device library including a plurality of companion device each associated with at least one long-name, short-cut name and companion device room location, and a processor. The processor may be configured to receive a user command from a microphone, extract a companion device name and action from the user command, determine whether the companion device name includes a unique name, and command a companion device associated with the unique name to perform the action from the user command in response to the user command including the unique name.

TECHNICAL FIELD

Aspects of the disclosure generally relate to a proximity aware voiceagent.

BACKGROUND

Personal assistant devices such as voice agent devices are becomingincreasingly popular. These devices may include voice controlledpersonal assistants that implement artificial intelligence based on useraudio commands. Some examples of voice agent devices may include AmazonEcho, Amazon Dot, Google At Home, etc. Such voice agents may use voicecommands as the main interface with processors of the same. The audiocommands may be received at a microphone within the device. The audiocommands may then be transmitted to the processor for implementation ofthe command.

SUMMARY

A personal assistant device configured to control companion devices mayinclude a memory configured to maintain a companion device libraryincluding a plurality of companion devices each associated with at leastone long-name, short-cut name and companion device room location, and aprocessor. The processor may be configured to receive a user commandfrom a microphone, extract a companion device name and action from theuser command, determine whether the companion device name includes aunique name, and command a companion device associated with the uniquename to perform the action from the user command in response to the usercommand including the unique name.

A personal assistant device configured to control companion devices mayinclude a memory configured to maintain a companion device libraryincluding a plurality of companion device each associated with at leastone long-name, short-cut name and companion device room location, amicrophone configured to receive a user command, and a processor. Theprocessor may be configured to receive the user command from themicrophone, identify a user room location from the user command, extracta companion device name from the user command, identify a companiondevice room location based on the companion device name within thecompanion device library, determine whether the user room location isthe same as the companion device room location, and provide at least onecommand to a companion device associated with the companion device namein response to the user room location being the same as the companiondevice room location.

A method may include receiving a user command and extracting a companiondevice name and an action from the user command. The method may furtherinclude identifying a companion device room location based on thecompanion device name, determining whether the user command was receivedfrom a user room location that the same as the companion device roomlocation; and providing at least one command to a companion deviceassociated with the companion device name in response to the user roomlocation being the same as the companion device room location.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments of the present disclosure are pointed out withparticularity in the appended claims. However, other features of thevarious embodiments will become more apparent and will be bestunderstood by referring to the following detailed description inconjunction with the accompanying drawings in which:

FIG. 1 illustrates a system including an example intelligent personalassistant device, in accordance with one or more embodiments;

FIG. 2 illustrates an example companion device library;

FIG. 3 illustrates an example home including a plurality of rooms,personal assistant devices, and companion devices;

FIG. 4 illustrates an example database for personal assistantidentification; and

FIG. 5 illustrates an example process for the personal assistant deviceto identify a room and provide a command to one of the companiondevices.

DETAILED DESCRIPTION

As required, detailed embodiments of the present invention are disclosedherein; however, it is to be understood that the disclosed embodimentsare merely exemplary of the invention that may be embodied in variousand alternative forms. The figures are not necessarily to scale; somefeatures may be exaggerated or minimized to show details of particularcomponents. Therefore, specific structural and functional detailsdisclosed herein are not to be interpreted as limiting, but merely as arepresentative basis for teaching one skilled in the art to variouslyemploy the present invention.

Personal assistant devices may include voice controlled personalassistants that implement artificial intelligence based on user audiocommands. Some examples of voice agent devices may include Amazon Echo,Amazon Dot, Google At Home, etc. Such voice agents may use voicecommands as the main interface with processors of the same. The audiocommands may be received at a microphone within the device. The audiocommands may then be transmitted to the processor for implementation ofthe command. In some examples, the audio commands may be transmittedexternally, to a cloud based processor, such as those used by AmazonEcho, Amazon Dot, Google At Home, etc.

Often, a single home may include more than one personal assistantdevice. For example, a home may include a personal assistant devicelocated each of the kitchen, bedroom, home office, etc. The personalassistant devices may also be portable and may be moved from room toroom within a home. The location of the personal assistant device maygive valuable context and enable the device to better tailor theinformation that it provides, as well as control other device accordingto the location.

In a home with multiple voice agent devices, each may be able to controlother companion devices such as speakers, lights, alarm systems, etc. Inone example, each of the kitchen and the bedroom may have lightscontrolled via audio commands via the personal assistant devices. When auser is in the bedroom and says, “turn on the lights,” then the bedroomlights may turn on. However, if the personal assistant device is notaware of the device's location, then the personal assistant device mayinstruct the wrong light to turn on, e.g., the kitchen lights to turnon. Users may label such lights as “bedroom lights.” However, suchlabeling or clustering may require that the user remember each label.Furthermore, guests and children may not know the label associated witheach device or each room. Moreover, a group or cluster could not havethe same name such as “lights,” but would instead require distinct namesfor each group, such as “kitchen lights”.

Disclosed herein is a system for allowing multiple companion devices inthe home to share the same short-cut name, such as “lights.” The systemallows for one or more personal assistant devices to control multiplecompanion devices in a home that share the same short-cut name, such as“light.” Upon determining which room or which location the user is in,the voice agent device may then perform several verifications. The firstverification may be determining whether the companion device name isrecognized. For example, the voice agent device may determine whether itcontrols a companion device by the name given in the user command. Thesecond verification may be determining whether the companion device nameis a unique name. That is, is the device name one associated with aspecific companion device or group of devices. For example, “kitchenlight” would be a unique device name, whereas “light” would likely notbe. The third verification may include determining whether the companiondevice defined by the device name is located within the room orlocation.

By determining a user's location and by determining the location of thepersonal assistant device, the personal assistant device may determinewhich companion devices the user wishes to control. If the user says acommand that include a devices name of a companion device that is notlocated within the user's current room, the personal assistant devicemay generate an alert and indicate the same to the user. Thus, lesslearning and memorizing on the part of the user is required, a moreaccurate control of companion device is achieved, and an overall moreflexible and easier to use system is appreciated.

FIG. 1 illustrates a system 100 including an example intelligentpersonal assistant device 102. The personal assistant device 102receives audio through a microphone 104 or other audio input, and passesthe audio through an analog to digital (A/D) converter 106 to beidentified or otherwise processed by an audio processor 108. The audioprocessor 108 also generates speech or other audio output, which may bepassed through a digital to analog (D/A) converter 112 and amplifier 114for reproduction by one or more loudspeakers 116. The personal assistantdevice 102 also includes a controller 118 connected to the audioprocessor 108 and configured to manage various companion devices via thecompanion device library 132.

The controller 118 also interfaces with a wireless transceiver 124 tofacilitate communication of the personal assistant device 102 with acommunications network 126. In many examples, the controller 118 also isconnected to one or more Human Machine Interface (HMI) controls 128 toreceive user input, as well as a display screen 130 to provide visualoutput. It should be noted that the illustrated system 100 is merely anexample, and more, fewer, and/or differently located elements may beused.

The A/D converter 106 receives audio input signals from the microphone104. The A/D converter 106 converts the received signals from an analogformat into a digital signal in a digital format for further processingby the audio processor 108.

While only one is shown, one or more audio processors 108 may beincluded in the personal assistant device 102. The audio processors 108may be one or more computing devices capable of processing audio and/orvideo signals, such as a computer processor, microprocessor, a digitalsignal processor, or any other device, series of devices or othermechanisms capable of performing logical operations. The audioprocessors 108 may operate in association with a memory 110 to executeinstructions stored in the memory 110. The instructions may be in theform of software, firmware, computer code, or some combination thereof,and when executed by the audio processors 108 may provide the audiorecognition and audio generation functionality of the personal assistantdevice 102. The instructions may further provide for audio cleanup(e.g., noise reduction, filtering, etc.) prior to the recognitionprocessing of the received audio. The memory 110 may be any form of oneor more data storage devices, such as volatile memory, non-volatilememory, electronic memory, magnetic memory, optical memory, or any otherform of data storage device. In addition to instructions, operationalparameters and data may also be stored in the memory 110, such as aphonemic vocabulary for the creation of speech from textual data.

The D/A converter 112 receives the digital output signal from the audioprocessor 108 and converts it from a digital format to an output signalin an analog format. The output signal may then be made available foruse by the amplifier 114 or other analog components for furtherprocessing.

The amplifier 114 may be any circuit or standalone device that receivesaudio input signals of relatively small magnitude, and outputs similaraudio signals of relatively larger magnitude. Audio input signals may bereceived by the amplifier 114 and output on one or more connections tothe loudspeakers 116. In addition to amplification of the amplitude ofthe audio signals, the amplifier 114 may also include signal processingcapability to shift phase, adjust frequency equalization, adjust delayor perform any other form of manipulation or adjustment of the audiosignals in preparation for being provided to the loudspeakers 116. Forinstance, the loudspeakers 116 can be the primary medium of instructionwhen the device 102 has no display screen 130 or the user desiresinteraction that does not involve looking at the device. The signalprocessing functionality may additionally or alternately occur withinthe domain of the audio processor 108. Also, the amplifier 114 mayinclude capability to adjust volume, balance and/or fade of the audiosignals provided to the loudspeakers 116.

In an alternative example, the amplifier 114 may be omitted, such aswhen the loudspeakers 116 are in the form of a set of headphones, orwhen the audio output channels serve as the inputs to another audiodevice, such as an audio storage device or a further audio processordevice. In still other examples, the loudspeakers 116 may include theamplifier 114, such that the loudspeakers 116 are self-powered.

The loudspeakers 116 may be of various sizes and may operate overvarious ranges of frequencies. Each of the loudspeakers 116 may includea single transducer, or in other cases multiple transducers. Theloudspeakers 116 may also be operated in different frequency ranges suchas a subwoofer, a woofer, a midrange and a tweeter. Multipleloudspeakers 116 may be included in the personal assistant device 102.

The controller 118 may include various types of computing apparatus insupport of performance of the functions of the personal assist device102 described herein. In an example, the controller 118 may include oneor more processors 120 configured to execute computer instructions, anda storage medium 122 (or storage 122) on which the computer-executableinstructions and/or data may be maintained. A computer-readable storagemedium (also referred to as a processor-readable medium or storage 122)includes any non-transitory (e.g., tangible) medium that participates inproviding data (e.g., instructions) that may be read by a computer(e.g., by the processor(s) 120). In general, a processor 120 receivesinstructions and/or data, e.g., from the storage 122, etc., to a memoryand executes the instructions using the data, thereby performing one ormore processes, including one or more of the processes described herein.Computer-executable instructions may be compiled or interpreted fromcomputer programs created using a variety of programming languagesand/or technologies including, without limitation, and either alone orin combination, Java, C, C++, C#, Assembly, Fortran, Pascal, VisualBasic, Python, Java Script, Perl, PL/SQL, etc.

While the processes and methods described herein are described as beingperformed by the processor 120, the processor 120 may be located withina cloud, another server, another one of the devices 102, etc.

As shown, the controller 118 may include a wireless transceiver 124 orother network hardware configured to facilitate communication betweenthe controller 118 and other networked devices over the communicationsnetwork 126. As one possibility, the wireless transceiver 124 may be acellular network transceiver configured to communicate data over acellular telephone network. As another possibility, the wirelesstransceiver 124 may be a Wi-Fi transceiver configured to connect to alocal-area wireless network to access the communications network 126.

The controller 118 may receive input from human machine interface (HMI)controls 128 to provide for user interaction with personal assistantdevice 102. For instance, the controller 118 may interface with one ormore buttons or other HMI controls 128 configured to invoke functions ofthe controller 118. The controller 118 may also drive or otherwisecommunicate with one or more displays 130 configured to provide visualoutput to users, e.g., by way of a video controller. In some cases, thedisplay 130 (also referred to herein as the display screen 130) may be atouch screen further configured to receive user touch input via thevideo controller, while in other cases the display 130 may be a displayonly, without touch input capabilities.

The companion device library 132 includes a database of companiondevices each identified by short-cut name, long-name, and a roomlocation. The room location may be the room in which the virtualassistant or the companion device is located. An example companiondevice library 132 is illustrated in FIG. 2. The companion devicelibrary 132 may be stored within the device 102, as well as a separateservicer, cloud-based computing system, etc.

Referring to FIG. 2, for example, the companion device library 132 mayinclude a plurality of short-cut names 220, each associated with along-name 222 and a companion device room location 224. The companiondevice room location 224 may be the room in which the companion deviceis located. Each room may be associated with certain audio settingsapplied to the audio signal when the device 102 is located at thatlocation. That is, the audio settings may be specific to each location.For example, the starting music genre and volume associated with anoutdoor space may be louder than that associated with the home office.Other audio processing attributes such as equalization, filtering, etc.,may be specific to each location and defined within the companion devicelibrary for that location.

The short-cut names may include generic names that may be applicable tomore than one companion device, such as “lights” or “tv”. The long-namesmay be unique names that identify a specific device and are notduplicative, such as Notably, some of the short-cut 220 names may be thesame as the long-names 222. Essentially, in order to control a certaincompanion device such as lights or speakers, the companion device may becalled by name. This name may include either the short-cut name or thelong-name. The database maintains the names and locations in order toefficiently and accurately respond to user commands received at themicrophone 104 of the device 102.

The location of the user may also be relevant in controlling the variouscompanion devices 240 (e.g., devices 240-1, 240-2, 240-3, 240-4, 240-5,etc., as illustrated in FIG. 3). By determining which room the user isin, the processor 120 may more accurately control the companion devices240. The user room location may be identified in various ways.

In one example, the user room location may be identified by a roomsample collected from the microphone 104 of the personal assistantdevice. The room sample may be collected upon start-up of the device102. A stimulus noise may be emitted from the loudspeaker 116 and theroom sample may be subsequently recorded. In one example, the roomsample may include unique room impulse responses (RIR). These impulseresponses may be unique to each room and therefore be used to identifythe room as the device is moved between various locations. The RIRs mayinclude an amplitude envelope (i.e., amplitude over time). A RIR of aroom may vary slightly depending on the exact location of the device 102within the room. However, a RIR of two different rooms may varydramatically. Because of this, the RIR acquired by the room sample maybe used to classify or identify a room or location of the device 102.For example, a sample RIR of a room sample may be compared to storedRIRs. If a certain number of amplitudes of the sample response alignedor match with that of a stored response associated with a known room,then the room may be identified based on the stored response. This isdiscussed in more detail herein.

FIG. 3 illustrates an example home 200 including a plurality of rooms202. The rooms 202 may include, for example, a bedroom 202-1, a homeoffice 202-2, a kitchen 202-3, a living room 202-4, and an outdoor spaceor patio 202-5. Various other rooms and locations may be appreciated andincluded. For example, a home gym, basement, etc., may also be includedin the home 200.

Multiple personal assistant devices 102 may be included in the roomsthroughout the home 200. In the example shown in FIG. 3, a first device102-1 is located in the bedroom 202-1. A second device 102-2 is locatedwithin the home office 202-2. A third device 102-3 is located in theliving room 202-4, and so on.

In addition to each room including a personal assistant device 102, eachroom may also include various companion devices 240. A companion device240 may include a device that may interface and communicate with thepersonal assistant device 102. The personal assistant device 102 mayprovide instructions or commands to the companion devices 240 inresponse to user commands. In one example, the companion device 240 maybe a light 240-6 and may respond to the command “turn on the kitchenlight.” Other examples of companion devices may include televisions,speakers, monitors, security cameras, outlets, thermostats, etc. Thecompanion devices 240 may communication with the personal assistantdevice 102 via a wireless network such as a home network. The companiondevice 240 may be registered and paired with the personal assistantdevice 102 upon configuration, and thereafter may respond to commandsprovided by the assistant device 102.

As explained above, each room 202 may include one or more companiondevices 240. The bedroom 202-1, for example, may include a tv 240-1, alamp 240-2, and an overhead light 240-3. The office 202-2, may include,a light 240-4, a tv 240-5, another light 240-6, etc. Each of thecompanion devices 240 may be associated with a short-cut name and along-name, as explained above with respect to FIG. 2. As a user travelsthrough the home, the user may issue verbal commands such as “turn onHBO.” The processor 120 may determine the location of the user, and thenturn on one of the bedroom tv 240-1, and the office tv 240-5, based onthe user's location.

FIG. 4 illustrates an example database 400 for personal assistant device102 identification. This database 400 or chart may be part of thecompanion device library 132. Each device 102 may be determined to be ina certain room 202. With this, the database 400 may store therelationship between the personal assistant device 102 and the roomlocation. Each device 102 may be associated with a uniqueidentification. Once a device 102, as identified by its uniqueidentification, is determined to be within a certain room, theassociation thereof is saved in database 400.

FIG. 5 illustrates an example process 500 for the personal assistantdevice 102 to identify a room 202 and provide a command to one of thecompanion devices 240. As explained above, a user may have multipledevices 102 throughout his or her home. Each device 102 may receivevarious commands. In some situations, more than one device 102 mayreceive a single command. The process 500 allows for a better userexperience by allowing user to control various devices without the needto memorize device names. The verbal commands from the users may beparsed and analyzed to control the desired device based on the user'slocation.

Generally, the processor 120 may identify the room based on the receivedvoice command. This may include analyzing the voice command by parsingthe voice command to extract various command information from thecommand. Some of the voice commands may include phrases that includelong-names for the device to be controlled, such as “den light.” Othercommands simply include a short-cut name such as “light.” For example,if the phrase is “turn on the den light” or “turn the den light on,” thedevice name may be the device associated with “den,” the action may be“on,” and the room location may be the den. Thus, this phrase includes along-name “den light” and both the device and room location areidentified by use of the long-name.

In the other example, the voice command may include a short-cut name fora device. In the example phrase “turn the light on.” In this phrase, thedevice name may be “light,” the action may be “on,” and the roomlocation would need to be determined. The room location may bedetermined by a mechanism other than parsing out the room name from thephrase. One such mechanism may include using the RIR, as explainedabove. Once the room is identified based on the RIR, The RIR may beincluded as part of the personal assistant device ID 420. Thus, the RIRmay be used to look up the room location when the room is not includedin the voice command.

The process 500 illustrates an example process for identifying a roomlocation based on a voice command.

The process 500 begins at block 502. At block 502, the processor 120receives a voice command from the microphone 104. As explained above,the voice command may include a verbal instruction from the user tocontrol various companion devices 240 such as “turn on the lights,” or“tune the TV to channel 7.”

At block 504, the processor 120 may parse the received voice command inorder to extract command information such as the companion device name,action, room location, etc. For example, if the phrase is “turn on theden light” or “turn the den light on,” the device name may be “denlight,” the action may be “on,” and the room location may be the den.Thus, this phrase includes a long-name “den light” and both the deviceand room location are identified by use of the long-name. In anotherexample, the phrase may be “turn the light on.” In this phrase, thedevice name may be “light,” the action may be “on.” Because a short-cutname was used, the room location is not available from the parsedcommand information.

At block 506, the processor 120 may determine whether the device name isrecognized. The processor 120 may compare the parsed name acquired inblock 504 with the list of device names 220, 222 stored in the companiondevice library 132. The processor 120 may compare the parsed device namewith the short-cut names 220, as well as the long-names 222. If theprocessor 120 matches the parsed device name with one of the names 220,222, then the process 500 proceeds to block 508. If not, the process 500proceeds to block 510.

At block 508, the processor 120 may determine whether the parsed devicename is a long-name 222. If the parsed device name includes a long name,such as “den light,” then the parsed device name is considered a uniquename because the device (e.g., “den light”) is specifically identifiedinstead of generically identified (e.g., “light”). If the parsed devicename is a long-name 222, the process 500 proceeds to block 512. If not,the process 500 proceeds to block 514.

At block 510, in response to the parsed device name failing to match anyof the names 220, 222 within the companion device library 132, theprocessor may instruct the speaker 116 to output a device error message.The device error message may indicate that a companion device by theparsed device name could not be located. For example, if the parseddevice name was “den light,” then the device error message may includean audible command such as “I'm sorry, I couldn't find a device or groupnamed den light.” In another example, the error message may specificallyask for the device name, such as “I'm sorry, I couldn't find a device orgroup name den light, could you please repeat the name of the device?”

At block 512, the processor 120 may identify the user room location, orthe room that the user is currently in. This may be determined bylooking at the RIR and determining the current user room location. TheRIR may indicate which room the user is currently in. The room locationmay also be determined by which personal assistant device 102 receivedthe command, or which device 102 received the highest quality of thecommand, indicating which device 102 the user is closest to.

At block 513, the processor 120 may determine whether the companiondevice 240 associated with the long-name 222 is in the current room asthe user. In other words, is the companion device room location the sameas the user room location. In the example above, the processor 120 maydetermine whether the user is in the den. If the processor 120determines that the user is in the same room as the companion device 240identified in the command, the process 500 proceeds to block 516. Ifnot, the process 500 proceeds to block 518.

At block 514, the processor 120 may determine the current room of theuser, similar to block 512. As explained above, this may be done usingthe RIR, or determining which device 102 received the voice command inblock 502.

At block 515, the processor 120 may determine whether a companion device240 by the parsed device name is associated with the current room. Forexample, if the short-cut name is “den,” and the user is currently inthe den or the master bedroom, then the short-cut name will berecognized. However, since there is no device by the name of “light”within the garage, the device name will not be recognized. If the devicename is associated with a companion device name within the current room,the process proceeds to block 516. If not, the process 500 may proceedto block 522.

At block 516, the processor 120 may apply the parsed action to thecompanion device 240 associated with the parsed device name in theparsed or identified room. For example, the companion device may be theden light, which may be turned on.

At block 518, the processor 120, in response to determining that theuser is not in the same room as the companion device associated with theparsed device name, may issue a room warning or message. This messagemay alert the user that a device by the parsed device name exists, butnot within the room that the user is currently in. For example, theprocessor 120 may instruct the speaker 116 to emit “a device by thatname is not located within this room, would you still like to controlthe device?”

At block 520, the processor 120 may determine whether the microphone 104has received an affirmative user answer to the inquiry transmitted atblock 518. For example, the user may respond “yes” to the question ofwhether he or she would like to control a device not within the sameroom as the user. If so, the process proceeds to block 516. If anaffirmative response is not received, for example if the user responds“no,” the process 500 may end.

At block 522, in response to the processor 120 not locating a device bythe parsed name within the current room, the processor 120 may instructthe speaker 116 to emit a device and room error message. For example,the speaker 116 may emit “I'm sorry, but I couldn't find a device bythat name in this room.”

Although not illustrated as part of the process 500, other steps andprocesses may be appreciated. In one example, the user voice command mayprovide a query of potential devices. For example, the user command maybe “what devices are in this room?” In response to this query, theprocessor 120 may determine the room location using RIR, expressidentification or other mechanisms, and may scan the companion devicelibrary 132 to determine which devices are associated with the currentroom. Once determined, the processor 120 may instruct the speaker 116 toemit a list of companion devices 240, as well as the short-cut namesassociated therewith, for example “the devices in this room are the denlight which can be referred to as light, and the den tv, which can bereferred to as tv.”

The system may also deduce a room location. For example, a guest bedroommay include three companion devices named, guest bedroom light, guestbedroom tv and guest bedroom lamp. Commands given using the long-namewould identify the current room as the guest bedroom. After receivingseveral commands using the long-names, the processor 120 may instructthe speaker 116 to emit a command such as “it appears we are in theguest bedroom, is this correct?” A positive or affirmative respond fromthe user would allow the server to add the “guest bedroom” as the roomlocation for the devices in the database. Additionally or alternatively,during set up and during the addition of the companion devices to thedatabase, the processor 120 may determine that all three devices arewithin the guest room based on all three having “guest bedroom” in theirlong-name. Thus, the processor 120 may deduce the room location duringconfiguration of initial set up.

Further, while most of the examples shown herein are related to a homeor house, the disclosure may also relate to various other buildings,situation, environments, etc. In one example, this system may bebeneficial for use in the medical industry, specifically hospitalshaving multiple rooms. When patients, doctors, nurses, etc., move fromroom to room, each may issue commands such as “turn on the lights,” or“turn on the tv.” Without having to know the specific name of thedevice, the user issuing the commands may control the various companiondevices. This is due to the processor 120 determining the user'slocation and controlling the companion devices based on that location.This may also increase security and avoid undue interruptions by onlypermitting users to control the devices within the same room as theuser.

While the systems and methods above are described as being performed bythe processor 120 of a personal assistant device 102, the processes maybe carried about by another device, or within a cloud computing system.The processor 120 may not necessarily be located within the room with acompanion device, and may be remove of the home in general.

Accordingly, companion devices that may be controlled via virtualassistant devices may be easily commanded by users not familiar with thespecific device long-names associates with the companion devices.Short-cut names such as “lights” may be enough to control lights in nearproximity to the user, e.g., in the same room as the user. Once theuser's location is determined, the personal assistant device may reactto user commands to efficiently, easily, and accurately controlcompanion device.

While exemplary embodiments are described above, it is not intended thatthese embodiments describe all possible forms of the invention. Rather,the words used in the specification are words of description rather thanlimitation, and it is understood that various changes may be madewithout departing from the spirit and scope of the invention.Additionally, the features of various implementing embodiments may becombined to form further embodiments of the invention.

What is claimed is:
 1. A personal assistant device configured to controlcompanion devices, comprising: a memory configured to maintain acompanion device library including a plurality of companion devices eachassociated with at least one long-name, short-cut name, and companiondevice room location; a processor configured to: receive a user commandfrom a microphone; extract a companion device name and action from theuser command; determine whether the companion device name includes aunique name; and command a companion device associated with the uniquename to perform the action from the user command in response to the usercommand including the unique name.
 2. The device of claim 1, wherein theprocessor is further configured to determine a room location of a userproviding the user command in response to the companion device nameincluding a generic name.
 3. The device of claim 2, wherein theprocessor is further configured to identify the companion device basedon the generic name and the room location, and command the identifiedcompanion device to perform the action from the user command.
 4. Thedevice of claim 2, wherein the processor is further configured todetermine a companion device room location associated with the companiondevice based on the companion device library.
 5. The device of claim 4,wherein the processor is further configured to determine whether thecompanion device room location is the same as the user room location. 6.The device of claim 5, wherein the processor is further configured toinstruct a speaker to issue an alert in response to the companion deviceroom location not being the same as the user room location.
 7. Thedevice of claim 2, wherein the processor is further configured toinstruct a speaker to audibly provide a list of companion devices withinthe user room location.
 8. A personal assistant device configured tocontrol companion devices, comprising: a memory configured to maintain acompanion device library including a plurality of companion device eachassociated with at least one long-name, short-cut name and companiondevice room location; a microphone configured to receive a user command;a processor configured to: receive the user command from the microphone;identify a user room location from the user command; extract a companiondevice name from the user command; identify a companion device roomlocation based on the companion device name within the companion devicelibrary; determine whether the user room location is the same as thecompanion device room location; and provide at least one command to acompanion device associated with the companion device name in responseto the user room location being the same as the companion device roomlocation.
 9. The device of claim 8, wherein the companion device name isone of a short-cut name and a long-name, wherein the long-name includesthe companion device room location.
 10. The device of claim 9, whereinthe processor is further configured to identify the companion devicebased on the short-cut name and the room location when more than onecompanion device has the short-cut name the companion device library,and provide a command to the companion device.
 11. The device of claim8, wherein the user command includes an action and the command to thecompanion device includes the action.
 12. The device of claim 8, whereinthe processor is further configured to issue an alert via a speaker inresponse to the companion device room location not being the same as theuser room location.
 13. The device of claim 12, wherein the processor isfurther configured to receive a user response to the alert and providethe command in response to receiving an affirmative response.
 14. Thedevice of claim 8, wherein the processor is further configured toinstruct a speaker to audibly provide a list of companion devices withinthe user room location.
 15. A method comprising: receiving a usercommand; extracting a companion device name and an action from the usercommand; identifying a companion device room location based on thecompanion device name; determining whether the user command was receivedfrom a user room location that is the same as the companion device roomlocation; and provide at least one command to a companion deviceassociated with the companion device name in response to the user roomlocation being the same as the companion device room location.
 15. Themethod of claim 14, wherein the companion device name is one of ashort-cut name and a long-name, wherein the long-name includes thecompanion device room location.
 16. The method of claim 15, furthercomprising identifying the companion device based on the short-cut nameand the room location in response to more than one companion devicehaving the same short-cut name.
 17. The method of claim 15, furthercomprising identifying the companion device based on the long-name. 18.The method of claim 14, further comprising issuing an alert in responseto the companion device room location not being the same as the userroom location.
 19. The method of claim 17, further comprising receivinga user response to the alert; and providing the command to the companiondevice in response to receiving an affirmative response.
 20. The methodof claim 14, further comprising instructing a speaker to audibly providea list of companion devices within the user room location.